// src/mixins/tableMixin.js
import api from "@/request/api"
export default {
  data() {
    return {
      ttL:0,
      loading: false, // 加载状态
      tableData: [], // 表格数据
      total: 0, // 总条数
      page: 1, // 当前页
      pageSize: 10, // 每页条数
    }
  },
  created() {
    // 初始化查询参数
    // this.initQueryParams()
    // 获取表格数据
  },
  mounted(){
    console.log(this.classId)
  this.getTableData()
  },
  methods: {
    // 初始化查询参数 - 需要在组件中覆盖此方法
    initQueryParams() {
      for (const key in this.queryParams) {
        if (Object.prototype.hasOwnProperty.call(this.queryParams, key)) {
           this.queryParams[key]=""
        }
      }
    },
    
    // 获取表格数据 - 需要在组件中覆盖此方法
    async getTableData(pp=0) {
      if (pp==1) {
        if (this.ttl == -1) {
          return
        }
        this.page+=1
      }
      api[this.apimodel][this.apival]({
        ...this.queryParams,
        page:this.page,
        size:this.pageSize
      }).then(res=>{
        if (res?.status == 200) {
          if (pp==1) {

          this.tableData.push(... res.data.content.data)
          if (this.tableData.length == this.ttL) {
            this.ttl == -1
          }else{
          this.ttL = this.tableData.length

          }
          }else{
          this.tableData = res.data.content.data

          }
          this.total = res.data.content.count
        }
      })
    },
    
    // 处理查询
    handleQuery() {
      this.page = 1
      this.getTableData()
    },
    
    // 处理重置
    handleReset() {
      this.initQueryParams()
      this.handleQuery()
    },
    
    // 分页大小变化
    handleSizeChange(val) {
      this.pageSize = val
      this.getTableData()
    },
    
    // 当前页变化
    handleCurrentChange(val) {
      this.page = val
      this.getTableData()
    }
  }
}